package SBD.Servicios;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;

/**
* @class Conexion_MySQL
* @author Mauricio Alvarez.
* @date 12-Diciembre-2010.
* @brief Representa la conexión específica a una base de datos que opera bajo MySQL. Es una extensión de la clase Conexion.
*/

public /*abstract*/ class Conexion_MySQL extends Conexion {

    private String opciones;

    /**
     * @brief Constructor que setea el parametro options del archivo DatosConexionBD.
     * @return No presenta retorno
     * Inicia la función initdb() que genera la conexión con la base de datos.
    */
    public Conexion_MySQL() throws java.lang.ClassNotFoundException,
                                   java.lang.InstantiationException,
                                   java.lang.IllegalAccessException,
                                   java.sql.SQLException,
                                   IOException
    {
        Properties propiedades = new Properties();
        propiedades.load(new FileInputStream("src/SBD/propiedades/DatosConexionBD.properties"));
        opciones = propiedades.getProperty("options");
        //initdb();
        initdb_mysql();
    }


    /**
     * @brief Genera la solicitud de conexion a la base de datos MySQL.
     * @return No presenta retorno
    */
    //@Override abstract
    public void /*initdb()*/initdb_mysql() throws java.lang.ClassNotFoundException,
                                java.lang.InstantiationException,
                                java.lang.IllegalAccessException,
                                java.sql.SQLException
    {
        s_conexion = jdbc + host + "/" + database;
        Class.forName(driver).newInstance();
        conexion = DriverManager.getConnection(s_conexion + "?" + opciones, username, password);
        dbmd = conexion.getMetaData();
        un_st = conexion.createStatement();
    }

}//FIN Conexion_MySQL